﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using aspProject.Dmain.Domain;


namespace aspProject.ServiceContracts
{
    [ServiceContract (Namespace = "Http://schemas.labelconfig.be/service")]
    public interface ILabelService
    {
        [OperationContract]
        IEnumerable<LabelTypeDetail> GetLabelTypes();

        [OperationContract]
        LabelType GetLabelTypeById(int id);

        [OperationContract]
        LabelTypeDetail GetLabelTypeDetailById(int id);

        [OperationContract]
        IEnumerable<Theme> GetThemes();

        [OperationContract]
        IEnumerable<DataConfigDetail> GetDataConfigs();

        [OperationContract]
        IEnumerable<FieldConfigDetail> GetFieldConfigs(int labelTypeId);

        [OperationContract]
        IEnumerable<TemplateDetail> GetTemplates();

        [OperationContract]
        void AddDataConfig(DataConfigContract dataConfigContract);

        [OperationContract]
        void AddFieldConfig(FieldConfigContract fieldConfigContract);

        [OperationContract]
        void AddTemplate(TemplateContract templateContract);

        [OperationContract]
        void SaveToDatabase();

        [OperationContract]
        void SetCurrentLabelType(LabelTypeDetail detail);

        [OperationContract]
        DataConfigContract GetDataConfig(DataConfigDetail detail);

        [OperationContract]
        FieldConfigContract GetFieldConfig(FieldConfigDetail detail);

        [OperationContract]
        TemplateContract GetTemplate(TemplateDetail detail);

    }
}
